home *** CD-ROM | disk | FTP | other *** search
- Included in this distribution is the lpc.c module, a header file for the
- routines in it called lpc.h, and a small test program which illustrates a
- typical set of calls to it called lpctest.c.
-
- To compile lpctest.c, you need to link it with lpc.o and the math library.
- It will take sound samples from stdin, compress & decompress them with LPC,
- and output the resulting samples to stdout.
-
- The subroutines in lpc.c are as follows:
-
- The lpc_init routine specifies the length of a single frame to be processed by
- the other LPC subroutines. This number is expressed in samples, and lpc_init
- should be called before anything else. It also resets all other state kept
- between frames, and can be called again when there's a break in what it being
- encoded or decoded (such as between talk spurts):
-
- int lpc_init(int framelen);
-
-
- The lpc_analyze routine is used to convert a group of samples into an LPC
- frame. State is kept between calls to smooth out transitions between frames, so
- this routine should be called with frames in order:
-
- void lpc_analyze(unsigned char *buf, lpcparams_t *params);
-
-
- The lpc_synthesize routine is used to convert an LPC frame back into a group of
- samples. Also, a speed parameter may be specified to speed up or slow down the
- speech (without altering the pitch). The length of the buffer returned depends
- on the speed. If speed==1.0, it will be the same as the length passed to the
- lpc_init call. If speed==2.0, it will be half that. The call to lpc_synthesize
- returns this length. Note that the speed parameter is a float -- passing an
- integer will cause unpredictable results:
-
- int lpc_synthesize(lpcparams_t *params, float speed, unsigned char *buf);
-